A common problem with network systems, such as Ethernet systems, is ensuring that a system can provide adequate bandwidth to one or more destinations from a single input data source. A device which buffers the input data and selects which destination receives this data is often required to work in different network configurations, each with its own bandwidth necessities. In some systems, it is not predetermined 1) which destination will require a given bandwidth, 2) when the bandwidth will be required, and 3) how much bandwidth will be required when requested. As used herein, the term bandwidth is intended to mean the average bandwidth over a period of time. For example, a typical bandwidth with certain networks is 3 gigabits per second. However, during peak times during transmission, the bandwidth may exceed the average for a short period of time. The activity during these intervals of time will be referred to as xe2x80x9cpeak bandwidthxe2x80x9d or xe2x80x9cburstsxe2x80x9d.
FIGS. 1a, 1b and 1c depict three possible network system configurations, each with a different number of receive devices and each having possibly different bandwidth capabilities. In this system, a buffering and selection device 10 is provided which receives data 12 of a given average bandwidth T from a data source 14. The buffering and selection device 10 includes selection logic 18, which provides data to output busses 20a-20n. The output busses 20a-20n provide data to each receive device, four of which are shown in FIGS. 1a and 1b designated as 24a, 24b, 24c and 24n and one of which is shown in FIG. 1c and designated as 24. Receive devices 24a, 24b, 24c and 24n each transmits data on data lines 28a, 28b, 28c and 28n to a network of users 30. Typically, the average output bandwidths of the receive devices 24a, 24b, 24c and 24n are a fraction of the average bandwidth of the input data 12 on the data source 14, except in the case where there is only one receive device 24, as shown in FIG. 1c wherein the receive device has an average bandwidth equal to that of the input data. Preferably, the total average bandwidth output of all of the receive devices 24a-24n in each of the configurations of FIGS. 1a, 1b and 1c is equal to the total average bandwidth of the data 12 from the data source. In any event, data 12 from the data source 14 cannot have a greater average bandwidth than the total average bandwidth of the receive devices, although it may have a lesser average bandwidth.
In operation, the buffering and selection device operates to receive data of an average bandwidth T from a data source, buffer the data when necessary, and transmit the data to one of the receive devices 24a, 24b, 24c or 24n under control of the selection logic 18 in the buffering and selection device. Each of the receive devices 24a-24n has a limited amount of storage capacity, such that it may receive at peak bandwidths greater than its average output bandwidth for a limited period of time. However, during peak bandwidth transmissions or bursts, any one of the receive devices 24a-24n may not be able to transmit data as fast as it is receiving data, and the data may have to be buffered in the device 10. During operation, real time events in the system may require that any one of the receive devices 24a-24n has to temporarily stop the flow of traffic from the buffering and selection device 10. Even though the buffering and selection device 10 only sends data to one of the receive devices 24a, 24b, 24c or 24n individually at a given time and not to two or more in parallel, it must maintain the required average bandwidth T. In such a case, the incoming data may have to be buffered in the device 10 until the receive devices 24a-24n are ready to receive. With the buffering and selection device being used with many possible system setups, it is important that the buffering and selection device be able to provide xe2x80x9cbandwidth on demandxe2x80x9d to the receive devices in many different configurations. Thus, it is necessary to test the buffering and selection device not only in a static test, i.e. by providing input data to the device at a fixed rate of the average bandwidth input with an output also at the fixed rate of the average bandwidth output, but also in a dynamic configuration wherein all of the input and output rates to and from the buffering and selection device are changed depending upon the demands of receive devices.
The present invention relates to a method of and program for dynamically testing a buffering and selection device wherein the buffering and selection device receives a transmission at an average bandwidth of T and in peak bandwidth bursts that may be greater than T. The buffering and selection device transmits data to one or more receive devices, all of which have a total average bandwidth of at least T. The buffering and selection device has buffers apportioned to each receive device in order to store data that is written in burst mode destined for that receive device. The method includes disabling the output data flow to the receive device being tested and then generating input data to the buffering and selection device tagged for each receive device in burst mode at a preselected number of transfers for each receive device. The program determines when the preselected number of transfers has occurred and then enables data flow to the receive device being tested. It is then determined if output to each receive device has commenced within a preselected latency period, and, if it has, it is determined if the preselected number of transfers of data has occurred within a preselected transfer period, i.e., meets bandwidth requirements.